1. Technical Field
The invention relates to the network data processing field and, in particular, but not exclusively, to server performance in network data processing systems. Still more particularly, the present invention provides a method and apparatus for improving the performance of proxy servers in network data processing systems.
2. Description of Related Art
A proxy is a server that typically resides between a client's application (e.g., Web browser) and another, “real” server in a network data processing system. A Web browser is a software application that can be used to locate and display documents stored on the World Wide Web (“Web”) or the Internet in “Web servers”. Web servers can be used to store and disseminate “Web pages”. A Web browser (or similar client application) typically runs on a Personal Computer (PC) or workstation, and relies on the real server and/or one or more proxy servers to perform the Web browser's (or client application's) functions, such as, for example, locating and retrieving Web pages for display.
Proxy servers can be used to control access to Internet sites and provide certain Internet services. For example, proxy servers can be used to provide access to the Web or email messaging. A proxy configured to run the known HyperText Transfer Protocol (HTTP) can be used to access the Web, and a proxy configured to run the known Simple Mail Transfer Protocol (SMTP) can be used for sending and receiving email. Also, proxy servers can be used for caching or storing Web pages, so that a subsequent request by a Web browser for a particular Web page can be satisfied locally from the proxy server, instead of routing the request back through the Web.
FIGS. 1A-1B depict a pictorial representation of a conventional, prior art network data processing system. Referring to FIG. 1A, network data processing system 100 contains a PC or workstation 102, which is configured with appropriate software to function as a Web browser within network data processing system 100. As such, browser 102 can be connected via a conventional telecommunication network such as Local Area Network or Wide Area Network (LAN/WAN) 104 to a forward proxy server 106. In the configuration shown, forward proxy server 106 may also be referred to as a “frontend” server, because forward proxy server 106 is located on the frontend or client side of network 108.
As indicated by the dashed outline for forward proxy server 106, network data processing system 100 can be alternatively configured to exclude forward proxy server 106, and browser 102 can be connected directly to network 108 (e.g., via telecommunication network 104). In this regard, a reverse proxy server 110 can be connected to network 108. In the configuration shown, reverse proxy server 110 may also be referred to as a “backend” server, because reverse proxy server 110 is located on the “backend” or server side of network 108. The network configuration of a reverse proxy server as a backend Web server, as shown in FIG. 1A, is often referred to as “intelligent routing” with respect to backend Web servers.
Reverse proxy server 110 is connected to a plurality of processing machines (e.g., 112, 114, 116), which can be configured as servers or processors (e.g., Central Processing Units or CPUs). If browser 102 requests a document (e.g., Web page), the request is communicated to reverse proxy server 110 via networks 104 and 108. Reverse proxy server 110 can then satisfy that request by retrieving the requested document from a processing machine 112, 114 or 116. Reverse proxy server 110 retrieves the requested document by addressing a Uniform Resource Locator (URL) associated with the document request received from browser 102. The URL associated with the document request is addressed to the appropriate machine 112, 114 or 116 where the requested document is stored. In this regard, each such URL can represent the global address of a document or associated processing machine 112, 114, 116 on the Web.
A significant problem that arises with the use of proxy servers in conventional network data processing systems is illustrated by FIG. 1B. Typically, in conventional network data processing systems, one proxy server 110 is connected to a plurality of physical processing machines 112, 114, 116. In order to process the document retrieval requests made by one or more browsers (e.g., 102), proxy server 110 processes each request for service in the order it is received. As shown in FIG. 1B, the response time required for the proxy server 110 to forward these requests for service by the appropriate machine 112, 114 or 116, is the same duration (e.g., 10 ms) for each such request made. In other words, proxy server 110 handles all of the requests on an equal basis. Consequently, in order to improve or decrease the response times for each of the requests, the conventional data processing network solution is to increase the ratio of proxy servers to processing machines (e.g., 3 proxy servers to 3 processing machines) so that each document request may be processed individually. However, this solution is costly in terms of hardware, processing time and money.
Therefore, it would be advantageous to provide an improved method, apparatus and program for increasing the performance of individual proxy servers with respect to the processing of document requests in network data processing systems, such as the Internet. In this regard, the conventional techniques being used to handle network traffic and make intelligent network handling decisions based on traffic content currently require the use of processing capabilities that impact the overall performance of the proxy servers involved. Consequently, there is a need to develop software solutions that can leverage the use of unique server designs in order to improve the performance of these proxy servers.